<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
		<head>
			<!-- template designed by Marco Von Ballmoos -->
			<title>Docs For Class NodeDef</title>
			<link rel="stylesheet" href="../media/stylesheet.css" />
			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
		</head>
		<body>
			<div class="page-body">			
<h2 class="class-name">Interface NodeDef</h2>

<a name="sec-description"></a>
<div class="info-box">
	<div class="info-box-title">Description</div>
	<div class="nav-bar">
					<span class="disabled">Description</span> |
															<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
						
					</div>
	<div class="info-box-body">
        		<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">A <a href="../phpContentRepository/Node.html">Node</a> definition. Used in node typed definition</p>
	<ul class="tags">
				<li><span class="field">copyright:</span> Copyright &amp;copy; 2004-2005, Domain51</li>
				<li><span class="field">author:</span> PHP - Travis Swicegood &lt;<a href="mailto:travis@domain51.net">travis@domain51.net</a>&gt;</li>
				<li><span class="field">see:</span> <a href="../phpContentRepository/Workspace.html#methodgetAccessManager">Workspace::getAccessManager()</a>, <a href="../phpContentRepository/AccessManager.html">AccessManager</a></li>
				<li><span class="field">see:</span> <a href="../phpContentRepository/NodeType.html#methodgetChildNodeDefs">NodeType::getChildNodeDefs()</a>, <a href="../phpContentRepository/Node.html#methodgetDefinition">Node::getDefinition()</a></li>
			</ul>
		<p class="notes">
			Located in <a class="field" href="_nodetype_NodeDef_interface_php.html">/nodetype/NodeDef.interface.php</a> (line <span class="field">42</span>)
		</p>
		
				
		<pre></pre>
	
			</div>
</div>




	<a name="sec-method-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Method Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
												<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
		</div>
		<div class="info-box-body">			
			<div class="method-summary">
								
				<div class="method-definition">
											<span class="method-result">bool</span>
										<a href="#allowSameNameSibs" title="details" class="method-name">allowSameNameSibs</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">object
 A</span>
										<a href="#getDeclaringNodeType" title="details" class="method-name">getDeclaringNodeType</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">array</span>
										<a href="#getDefaultMixinTypes" title="details" class="method-name">getDefaultMixinTypes</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">object
 A</span>
										<a href="#getDefaultPrimaryType" title="details" class="method-name">getDefaultPrimaryType</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">string|null</span>
										<a href="#getName" title="details" class="method-name">getName</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">int</span>
										<a href="#getOnParentVersion" title="details" class="method-name">getOnParentVersion</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">array</span>
										<a href="#getRequiredMixinTypes" title="details" class="method-name">getRequiredMixinTypes</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">array</span>
										<a href="#getRequiredPrimaryTypes" title="details" class="method-name">getRequiredPrimaryTypes</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">bool</span>
										<a href="#isAutoCreate" title="details" class="method-name">isAutoCreate</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">bool</span>
										<a href="#isMandatory" title="details" class="method-name">isMandatory</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">bool.</span>
										<a href="#isPrimaryItem" title="details" class="method-name">isPrimaryItem</a>
										()
									</div>
								
				<div class="method-definition">
											<span class="method-result">bool</span>
										<a href="#isReadOnly" title="details" class="method-name">isReadOnly</a>
										()
									</div>
							</div>
		</div>
	</div>		

	
	<a name="sec-methods"></a>
	<div class="info-box">
		<div class="info-box-title">Methods</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
																<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
						
		</div>
		<div class="info-box-body">
			<A NAME='method_detail'></A>
<a name="methodallowSameNameSibs" id="allowSameNameSibs"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">allowSameNameSibs</span> (line <span class="line-number">218</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Reports whether this child <a href="../phpContentRepository/Node.html">Node</a> can have same-name siblings.</p>
<p class="description"><p>In other words, whether the parent <a href="../phpContentRepository/Node.html">Node</a> can have more than one  child <a href="../phpContentRepository/Node.html">Node</a> of this name.</p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">bool</span>
		<span class="method-name">
			allowSameNameSibs
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetDeclaringNodeType" id="getDeclaringNodeType"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">getDeclaringNodeType</span> (line <span class="line-number">51</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the node type that contains the declaration of this  <a href="../phpContentRepository/NodeDef.html">NodeDef</a>.</p>
	<ul class="tags">
				<li><span class="field">return:</span> <a href="../phpContentRepository/NodeType.html">NodeType</a> object.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">object
 A</span>
		<span class="method-name">
			getDeclaringNodeType
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetDefaultMixinTypes" id="getDefaultMixinTypes"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">getDefaultMixinTypes</span> (line <span class="line-number">121</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the default set of mixin <a href="../phpContentRepository/NodeType.html">NodeType</a>s that will be assigned to  the child <a href="../phpContentRepository/Node.html">Node</a> upon creation.</p>
<p class="description"><p>This set of mixin node types must include at least those, or  subtypes of those, returned by <a href="../phpContentRepository/NodeDef.html#methodgetRequiredMixinTypes">getRequiredMixinTypes()</a>.</p></p>
	<ul class="tags">
				<li><span class="field">return:</span> An array of <a href="../phpContentRepository/NodeType.html">NodeType</a> objects.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">array</span>
		<span class="method-name">
			getDefaultMixinTypes
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetDefaultPrimaryType" id="getDefaultPrimaryType"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">getDefaultPrimaryType</span> (line <span class="line-number">98</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the default primary <a href="../phpContentRepository/NodeType.html">NodeType</a> that will be assigned to the  child node if it is created without an explicitly specified primary  <a href="../phpContentRepository/NodeType.html">NodeType</a>.</p>
<p class="description"><p>This <a href="../phpContentRepository/NodeType.html">NodeType</a> must be a subtype of (or the same type as) the  <a href="../phpContentRepository/NodeType.html">NodeType</a>s returned by <a href="../phpContentRepository/NodeDef.html#methodgetRequiredPrimaryTypes">getRequiredPrimaryTypes()</a>.</p></p>
	<ul class="tags">
				<li><span class="field">return:</span> <a href="../phpContentRepository/NodeType.html">NodeType</a>.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">object
 A</span>
		<span class="method-name">
			getDefaultPrimaryType
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetName" id="getName"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">getName</span> (line <span class="line-number">65</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the name of the child <a href="../phpContentRepository/Node.html">Node</a>.</p>
<p class="description"><p>If NULL, this <a href="../phpContentRepository/NodeDef.html">NodeDef</a> defines a residual set of  child <a href="../phpContentRepository/Node.html">Node</a>s. That is, it defines the characteristics of all those  child nodes with names apart from the names explicitly used in other  property or child node definitions.</p></p>
	<ul class="tags">
				<li><span class="field">return:</span> A string or NULL.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">string|null</span>
		<span class="method-name">
			getName
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetOnParentVersion" id="getOnParentVersion"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">getOnParentVersion</span> (line <span class="line-number">177</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the on-parent-version status of the child node.</p>
<p class="description"><p>This governs what to do if the parent <a href="../phpContentRepository/Node.html">Node</a> of this child  <a href="../phpContentRepository/Node.html">Node</a> is versioned; an <a href="../phpContentRepository/Level2/OnParentVersionAction.html">OnParentVersionAction</a>.</p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">int</span>
		<span class="method-name">
			getOnParentVersion
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetRequiredMixinTypes" id="getRequiredMixinTypes"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">getRequiredMixinTypes</span> (line <span class="line-number">108</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the minimum set of mixin <a href="../phpContentRepository/NodeType.html">NodeType</a>s that the child  <a href="../phpContentRepository/Node.html">Node</a> must have.</p>
	<ul class="tags">
				<li><span class="field">return:</span> An array of <a href="../phpContentRepository/NodeType.html">NodeType</a> objects.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">array</span>
		<span class="method-name">
			getRequiredMixinTypes
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodgetRequiredPrimaryTypes" id="getRequiredPrimaryTypes"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">getRequiredPrimaryTypes</span> (line <span class="line-number">84</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Gets the minimum set of primary node types that the child node must have.</p>
<p class="description"><p>Returns an array to support those implementations with multiple  inheritance. The simplest case would be to return nt:base,  which is the base of all primary node types and therefore, in this  context, represents the least restrictive requirement.</p><p>A <a href="../phpContentRepository/Node.html">Node</a> must still have only one assigned primary <a href="../phpContentRepository/NodeType.html">NodeType</a>,  though this attribute can restrict that <a href="../phpContentRepository/NodeType.html">NodeType</a> by taking  advantage of any inheritance hierarchy that the implementation may  support.</p></p>
	<ul class="tags">
				<li><span class="field">return:</span> An array of <a href="../phpContentRepository/NodeType.html">NodeType</a> objects.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">array</span>
		<span class="method-name">
			getRequiredPrimaryTypes
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodisAutoCreate" id="isAutoCreate"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">isAutoCreate</span> (line <span class="line-number">136</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Reports whether the child <a href="../phpContentRepository/Node.html">Node</a> is to be automatically created when  its parent <a href="../phpContentRepository/Node.html">Node</a> is created.</p>
<p class="description"><p>If set to TRUE then this <a href="../phpContentRepository/NodeDef.html">NodeDef</a> must not be a  residual set definition but must specify an actual child <a href="../phpContentRepository/Node.html">Node</a>  name. This child node may be of a <a href="../phpContentRepository/NodeType.html">NodeType</a> that specifies further  auto-created child <a href="../phpContentRepository/Node.html">Node</a>s.  In such a case a chain of <a href="../phpContentRepository/Node.html">Node</a>s  will be created.</p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">bool</span>
		<span class="method-name">
			isAutoCreate
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodisMandatory" id="isMandatory"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">isMandatory</span> (line <span class="line-number">166</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Reports whether the child <a href="../phpContentRepository/Node.html">Node</a> is mandatory.</p>
<p class="description"><p>A mandatory <a href="../phpContentRepository/Property.html">Property</a> is one that, if its parent <a href="../phpContentRepository/Node.html">Node</a>  exists, must also exist. It cannot be removed through this API except by  removing its parent.</p><p>An attempt to save a <a href="../phpContentRepository/Node.html">Node</a> that has a mandatory child <a href="../phpContentRepository/Node.html">Node</a>  without first creating that child <a href="../phpContentRepository/Node.html">Node</a>, will throw a  <a href="../phpContentRepository/Exceptions/ConstraintViolationException.html">ConstraintViolationException</a> on <a href="../phpContentRepository/Node.html#methodsave">Node::save()</a>.</p><p>If a child node is mandatory then the following restrictions must be  enforced:  <ul><li>If autoCreate is FALSE then the client
       must ensure that the child <a href="../phpContentRepository/Node.html">Node</a> is created before the parent
       <a href="../phpContentRepository/Node.html">Node</a> is saved, otherwise a
       <a href="../phpContentRepository/Exceptions/ConstraintViolationException.html">ConstraintViolationException</a> will be thrown on
       <a href="../phpContentRepository/Node.html#methodsave">Node::save()</a>.</li><li>Once created, the child <a href="../phpContentRepository/Node.html">Node</a> cannot be removed without
       removing its parent <a href="../phpContentRepository/Node.html">Node</a>, otherwise a
       <a href="../phpContentRepository/Exceptions/ConstraintViolationException.html">ConstraintViolationException</a> is thrown on
       <a href="../phpContentRepository/Node.html#methodsave">Node::save()</a>.</li></ul></p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">bool</span>
		<span class="method-name">
			isMandatory
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodisPrimaryItem" id="isPrimaryItem"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">isPrimaryItem</span> (line <span class="line-number">207</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Reports whether this <a href="../phpContentRepository/Node.html">Node</a> is the primary child <a href="../phpContentRepository/Item.html">Item</a> of  its parent <a href="../phpContentRepository/Node.html">Node</a>.</p>
<p class="description"><p>Since any given <a href="../phpContentRepository/Node.html">Node</a> may have either zero or one primary child  <a href="../phpContentRepository/Item.html">Item</a>s, this means that a maximum of one <a href="../phpContentRepository/PropertyDef.html">PropertyDef</a> or  <a href="../phpContentRepository/NodeDef.html">NodeDef</a> within a particular <a href="../phpContentRepository/NodeType.html">NodeType</a> may return  TRUE on this call.</p><p>The primary child <a href="../phpContentRepository/Item.html">Item</a> flag is used by the method  <a href="../phpContentRepository/Node.html#methodgetPrimaryItem">Node::getPrimaryItem()</a>.</p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">bool.</span>
		<span class="method-name">
			isPrimaryItem
		</span>
				()
			</div>
	
		
		
	</div>
<a name="methodisReadOnly" id="isReadOnly"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">isReadOnly</span> (line <span class="line-number">190</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Reports whether the child <a href="../phpContentRepository/Node.html">Node</a> is read-only.</p>
<p class="description"><p>A read-only <a href="../phpContentRepository/Node.html">Node</a> is one that cannot be changed (i.e., have child  <a href="../phpContentRepository/Node.html">Node</a>s or <a href="../phpContentRepository/Property.html">Property</a>s added or removed) through this API.  However, it may be altered by the implementation itself through some  mechanism not defined by this specification.</p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">bool</span>
		<span class="method-name">
			isReadOnly
		</span>
				()
			</div>
	
		
		
	</div>
						
		</div>
	</div>


	<p class="notes" id="credit">
		Documentation generated on Fri, 31 Dec 2004 10:15:15 -0600 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.3.0RC3</a>
	</p>
	</div></body>
</html>